/*
     Stream流的常见生成方式：
     1.Collection体系的集合可以使用默认方法 stream()生成流
        default Stream<E> stream()
     2.Map体系的集合间接的生成流
     3.数组可以通过Stream接口的静态方法 of(T... values) 生成流
 */

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.stream.Stream;

public class StreamDemo2 {
    public static void main(String[] args) {

        //1.Collection体系的集合可以使用默认方法生成流
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.stream();
        HashSet<String> hashSet = new HashSet<>();
        hashSet.stream();
        //2.Map体系的集合间接的生成流
        HashMap<String, Integer> hashMap = new HashMap<>();
        Stream<String> keystream = hashMap.keySet().stream();     //key流
        Stream<Integer> valuestream = hashMap.values().stream();  //value流
        Stream<Map.Entry<String, Integer>> entryStream = hashMap.entrySet().stream();  //键值对流

        // 3.数组可以通过Stream接口的静态方法 of(T... values) 生成流
        String[] strArray = {"hello","world","java"};
        Stream<String> stringStream1 = Stream.of(strArray);
        Stream<String> stringStream2 = Stream.of("hello", "world", "java");

    }
}
